home *** CD-ROM | disk | FTP | other *** search
Wrap
Text File | 1996-10-29 | 60.9 KB | 2,080 lines
declare // definition of constants #define COMPANY_NAME "Lⁿders/Winkler Gbr" #define PRODUCT_NAME "cFos fⁿr CompuServe" #define PRODUCT_VERSION "1.0" #define PRODUCT_KEY "cFos" #define DEINSTALL_KEY "cFos_Uninstall" #define UNINSTALL_NAME "cFos fⁿr CompuServe" STRING // General Strings sgRegistryValue, sgCfosPortNumber, sgGlobalBinaryString, // Registry Strings szKey, szClass, szKeyRoot, szName, szValue, svNumValue, // 4 strings to hold the free modems szModemNumber0, szModemNumber1, szModemNumber2, szModemNumber3, sgUninstallLogFile, sgTemp, sgRun, sgTemp2, sgCapiPath, sgCfosPath, sgSelectedComPort; LONG lgResult; // Used as temp storage for numeric returns NUMBER nCapiVersion, nSelectedComPort, // Kai: for CFOS installation ngCfosPortNumber, nTemp, nPosA, nPosB, nResult; BOOL bgKeyExists; // Function declarations. prototype RegistryEntry(STRING, STRING, STRING, NUMBER); prototype GetRegistryEntry(STRING, STRING, STRING, NUMBER); prototype ConvertStringToHex(STRING); program Start: Enable(STATUS); SetStatusWindow(0, "Installieren von cFos..."); ////////////////////////////////////////////////////////////////////////////// // Set up Uninstallation ////////////////////////////////////////////////////////////////////////////// SetUpUninstallation: InstallationInfo(COMPANY_NAME, PRODUCT_NAME, PRODUCT_VERSION, PRODUCT_KEY ); ////////////////////////////////////////////////////////////////////////////// // Get Information from System.ini ////////////////////////////////////////////////////////////////////////////// GetProfString(WINDIR+"SYSTEM.INI", "cFos", "ComPort", sgSelectedComPort); GetProfString(WINDIR+"SYSTEM.INI", "cFos", "CapiPath", sgCapiPath); GetProfString(WINDIR+"SYSTEM.INI", "cFos", "cFosPath", sgCfosPath); GetProfInt(WINDIR+"SYSTEM.INI", "cFos", "CapiVersion", nCapiVersion); //SprintfBox (INFORMATION, "Title", "Capi Version: %d", nCapiVersion); ////////////////////////////////////////////////////////////////////////////// // From here, log everything to make it uninstallable ////////////////////////////////////////////////////////////////////////////// DeinstallStart(sgCfosPath, sgUninstallLogFile, DEINSTALL_KEY, 0); RegDBSetItem(REGDB_UNINSTALL_NAME, UNINSTALL_NAME); ////////////////////////////////////////////////////////////////////////////// // Copy cFos files ////////////////////////////////////////////////////////////////////////////// CopyFiles: TARGETDIR = sgCfosPath; nResult = CompressGet("cfos.lib","*.*",COMP_NORMAL); switch (nResult) case 0: case COMP_ERR_CREATEDIR: MessageBox("Fehler beim Enpacken der Dateien: Zielverzeichnis konnte nicht erstellt werden.", INFORMATION); case COMP_ERR_FILENOTINLIB: MessageBox("Fehler beim Enpacken der Dateien: Die gepackte Datei ist beschΣdigt.", INFORMATION); case COMP_ERR_INCOMPATIBLE: MessageBox("Fehler beim Enpacken der Dateien: Die gepackte Datei ist beschΣdigt.", INFORMATION); case COMP_ERR_MEMORY: MessageBox("Fehler beim Enpacken der Dateien: Nicht genⁿgend freier Speicher.", INFORMATION); case COMP_ERR_NODISKSPACE: MessageBox("Fehler beim Enpacken der Dateien: Nicht genⁿgend Platz auf dem ZieldatentrΣger.", INFORMATION); case COMP_ERR_OPENINPUT: MessageBox("Fehler beim Enpacken der Dateien: Gepackte Datei konnte nicht gefunden werden.", INFORMATION); case COMP_ERR_OPENOUTPUT: MessageBox("Fehler beim Enpacken der Dateien: Zieldateien konnten nicht erstellt werden.", INFORMATION); case COMP_ERR_TARGETREADONLY: MessageBox("Fehler beim Enpacken der Dateien: Mindestens eine Zieldatei ist schreibgeschⁿtzt.", INFORMATION); default: endswitch; ////////////////////////////////////////////////////////////////////////////// // Make the necessary changes to the Registry ////////////////////////////////////////////////////////////////////////////// ChangeRegistry: // Check, if "System\\CurrentControlSet\\Services\\Class\\Ports\\cFosX" exists. // If so, increase port number and check again, until free port found. ("...cFos1" -> "...cFos2") RegDBSetDefaultRoot (HKEY_LOCAL_MACHINE); szKeyRoot = "System\\CurrentControlSet\\Services\\Class\\Ports\\cFos"; bgKeyExists = FALSE; nTemp = 0; repeat nTemp = nTemp + 1; NumToStr(sgTemp, nTemp); szKey = szKeyRoot + sgTemp; if (RegDBKeyExist (szKey) >= 0) then bgKeyExists=TRUE; else bgKeyExists=FALSE; endif; until (!bgKeyExists); ngCfosPortNumber=nTemp; NumToStr(sgCfosPortNumber, nTemp); // Now we need to determine four free modems. // Sorry, but InstallShield does not support arrays, so I have to do this // using "spagetti code". I would have preferred a single loop. SetStatusWindow(10, "Installieren von cFos..."); szKeyRoot = "System\\CurrentControlSet\\Services\\Class\\Modem\\"; bgKeyExists = FALSE; nTemp = -1; repeat nTemp = nTemp + 1; NumToStr(szModemNumber0, nTemp); sgTemp = "000" + szModemNumber0; nResult=StrLength(sgTemp); StrSub(szModemNumber0, sgTemp, nResult - 4, 4); szKey = szKeyRoot + szModemNumber0; if (RegDBKeyExist (szKey) >= 0) then bgKeyExists=TRUE; else bgKeyExists=FALSE; endif; until (!bgKeyExists); repeat nTemp = nTemp + 1; NumToStr(szModemNumber1, nTemp); sgTemp = "000" + szModemNumber1; nResult=StrLength(sgTemp); StrSub(szModemNumber1, sgTemp, nResult - 4, 4); szKey = szKeyRoot + szModemNumber1; if (RegDBKeyExist (szKey) >= 0) then bgKeyExists=TRUE; else bgKeyExists=FALSE; endif; until (!bgKeyExists); repeat nTemp = nTemp + 1; NumToStr(szModemNumber2, nTemp); sgTemp = "000" + szModemNumber2; nResult=StrLength(sgTemp); StrSub(szModemNumber2, sgTemp, nResult - 4, 4); szKey = szKeyRoot + szModemNumber2; if (RegDBKeyExist (szKey) >= 0) then bgKeyExists=TRUE; else bgKeyExists=FALSE; endif; until (!bgKeyExists); repeat nTemp = nTemp + 1; NumToStr(szModemNumber3, nTemp); sgTemp = "000" + szModemNumber3; nResult=StrLength(sgTemp); StrSub(szModemNumber3, sgTemp, nResult - 4, 4); szKey = szKeyRoot + szModemNumber3; if (RegDBKeyExist (szKey) >= 0) then bgKeyExists=TRUE; else bgKeyExists=FALSE; endif; until (!bgKeyExists); // Cfos# is created under System\\CurrentControlSet\\Services\\Class\\Ports // and filled with values. NumToStr(sgTemp, ngCfosPortNumber); szKey = "System\\CurrentControlSet\\Services\\Class\\Ports\\cFos" + sgTemp; szClass = ""; szKeyRoot = "System\\CurrentControlSet\\Services\\Class\\Ports"; szName = "DevLoader"; szValue = "*vcomm"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Enumerator"; szValue = "serenum.vxd"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "PortDriver"; szValue = "vcfos.vxd"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Contention"; szValue = "*vcd"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "ConfigDialog"; szValue = "serialui.dll"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "DCB"; szValue = "1c,00,00,00,80,25,00,00,11,33,00,00,00,00,0a,00,0a,00,08,00,00,11,13,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "PortSubClass"; szValue = "01"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "EnumPropPages"; szValue = "serialui.dll,EnumPropPages"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "DriverDesc"; szValue = "cFos Port"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); // Cfos# is created under Enum\\Root\\Ports\\cFos# // and filled with values, where # represents the correct // cFos port number. szKey = "Enum\\Root\\Ports\\cFos"; szKey = szKey + sgCfosPortNumber; szName = "Class"; szValue = "ports"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "ConfigFlags"; szValue = "00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "DeviceDesc"; szValue = "cFos Port " + sgCfosPortNumber; RegistryEntry(szKey, szName, szValue, REGDB_STRING); SetStatusWindow(20, "Installieren von cFos..."); szName = "Driver"; szValue = "ports\\cFos" + sgCfosPortNumber; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "estart"; szValue = "00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "FriendlyName"; szValue = "cFos Port " + sgCfosPortNumber; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "HardwareID"; szValue = "ISDNMDM"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Mfg"; szValue = "cFos Lueders Winkler Bonn"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "NoSetupUI"; szValue = "1"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "PortName"; szValue = sgSelectedComPort; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Settings"; szValue = "02,10,00,80"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); // Enter all the virtual modems. Just about 2000 lines of code. szKey = "System\\CurrentControlSet\\Services\\Class\\Modem\\" + szModemNumber0 + ""; szName = "FriendlyDriver"; szValue = "unimodem.vxd"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "DevLoader"; szValue = "*vcomm"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "PortSubClass"; szValue = "02"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "PortDriver"; szValue = "vcfos.vxd"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "ConfigDialog"; szValue = "modemui.dll"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "EnumPropPages"; szValue = "modemui.dll,EnumPropPages"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "DeviceType"; szValue = "01"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "Properties"; szValue = "00,00,00,00,ff,00,00,00,ff,00,00,00,07,00,00,00,0f,00,00,00,97,03,00,00,00,b8,0b,00,00,e8,03,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "Logging"; szValue = "01"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "LoggingPath"; szValue = "modemlog.txt"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "InactivityFormat"; szValue = "seconds"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "InactivityScale"; szValue = "0a,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "Reset"; szValue = "ATZ<cr>"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "FClass"; szValue = "1f,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "InfPath"; szValue = "MDMCFOS.INF"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "InfSection"; szValue = "Modem1"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "DriverDesc"; szValue = "cFos.Win, ISDN driver (X.75, default settings)"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "AttachedTo"; szValue = sgSelectedComPort; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Manufacturer"; szValue = "cFos Lueders Winkler GbR"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Model"; szValue = "cFos.Win, ISDN driver (X.75, default settings)"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "ID"; szValue = "18,7c,03,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); SetStatusWindow(30, "Installieren von cFos..."); szName = "Default"; szValue = "3c,00,00,00,00,00,00,00,00,00,00,00,01,00,00,00,93,01,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "DCB"; szValue = "1c,00,00,00,00,b8,0b,00,15,20,00,00,00,00,0a,00,0a,00,08,00,00,11,13,00,00,00,50,7e"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szKey = "System\\CurrentControlSet\\Services\\Class\\Modem\\" + szModemNumber0 + "\\Init"; szName = "1"; szValue = "AT<cr>"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "2"; szValue = "AT &F S9=130<cr>"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szKey = "System\\CurrentControlSet\\Services\\Class\\Modem\\" + szModemNumber0 + "\\Responses"; szName = "<cr><lf>OK<cr><lf>"; szValue = "00,00,00,00,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>ERROR<cr><lf>"; szValue = "03,00,00,00,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr>"; szValue = "01,00,00,00,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<lf>"; szValue = "01,00,00,00,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>RING<cr><lf>"; szValue = "08,00,00,00,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>NO CARRIER<cr><lf>"; szValue = "04,00,00,00,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>NO DIALTONE<cr><lf>"; szValue = "05,00,00,00,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>BUSY<cr><lf>"; szValue = "06,00,00,00,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>NO ANSWER<cr><lf>"; szValue = "07,00,00,00,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>RINGING<cr><lf>"; szValue = "01,00,00,00,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>CONNECT<cr><lf>"; szValue = "02,00,00,00,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>CONNECT 64000<cr><lf>"; szValue = "02,02,00,fa,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>CONNECT 64000/PPP<cr><lf>"; szValue = "02,02,00,fa,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>CONNECT 64000/V42B/TX<cr><lf>"; szValue = "02,03,00,fa,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>CONNECT 64000/V42B/RX<cr><lf>"; szValue = "02,03,00,fa,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>CONNECT 64000/V42B/TXRX<cr><lf>"; szValue = "02,03,00,fa,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>CONNECT 38400<cr><lf>"; szValue = "02,00,00,96,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>CONNECT 19200<cr><lf>"; szValue = "02,00,00,4b,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>CONNECT 9600<cr><lf>"; szValue = "02,00,80,25,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>CONNECT 14400<cr><lf>"; szValue = "02,03,40,38,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szKey = "System\\CurrentControlSet\\Services\\Class\\Modem\\" + szModemNumber0 + "\\Monitor"; szName = "1"; szValue = "ATS0=0<cr>"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "2"; szValue = "None"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szKey = "System\\CurrentControlSet\\Services\\Class\\Modem\\" + szModemNumber0 + "\\Hangup"; szName = "1"; szValue = "ATH0<cr>"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szKey = "System\\CurrentControlSet\\Services\\Class\\Modem\\" + szModemNumber0 + "\\Answer"; szName = "1"; szValue = "ATA<cr>"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szKey = "System\\CurrentControlSet\\Services\\Class\\Modem\\" + szModemNumber0 + "\\Settings"; szName = "Prefix"; szValue = "AT"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); SetStatusWindow(40, "Installieren von cFos..."); szName = "Terminator"; szValue = "<cr>"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "DialPrefix"; szValue = "D"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "DialSuffix"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "SpeakerVolume_Low"; szValue = "L0"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "SpeakerVolume_Med"; szValue = "L1"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "SpeakerVolume_High"; szValue = "L2"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "SpeakerMode_Off"; szValue = "M0"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "SpeakerMode_Dial"; szValue = "M1"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "SpeakerMode_On"; szValue = "M2"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "SpeakerMode_Setup"; szValue = "M3"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "FlowControl_Off"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "FlowControl_Hard"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "FlowControl_Soft"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "ErrorControl_On"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "ErrorControl_Off"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "ErrorControl_Forced"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Compression_On"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Compression_Off"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Modulation_CCITT"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Modulation_Bell"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "SpeedNegotiation_Off"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "SpeedNegotiation_On"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Pulse"; szValue = "P"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Tone"; szValue = "T"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Blind_Off"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Blind_On"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "CallSetupFailTimer"; szValue = "S7=<#>"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "InactivityTimeout"; szValue = "S19=<#>"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szKey = "System\\CurrentControlSet\\Services\\Class\\Modem\\" + szModemNumber0 + "\\Fax"; szName = "Class1DTESpeed"; szValue = "AUTO"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Class1FlowOff"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); SetStatusWindow(45, "Installieren von cFos..."); szName = "Class1FlowHW"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Class1FlowSW"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Class2FlowOff"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Class2FlowHW"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Class2FlowSW"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szKey = "System\\CurrentControlSet\\Services\\Class\\Modem\\" + szModemNumber1 + ""; szName = "FriendlyDriver"; szValue = "unimodem.vxd"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "DevLoader"; szValue = "*vcomm"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "PortSubClass"; szValue = "02"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "PortDriver"; szValue = "vcfos.vxd"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "ConfigDialog"; szValue = "modemui.dll"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "EnumPropPages"; szValue = "modemui.dll,EnumPropPages"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "DeviceType"; szValue = "01"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "Properties"; szValue = "00,00,00,00,ff,00,00,00,ff,00,00,00,07,00,00,00,0f,00,00,00,97,03,00,00,00,b8,0b,00,00,e8,03,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "Logging"; szValue = "01"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "LoggingPath"; szValue = "modemlog.txt"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "InactivityFormat"; szValue = "seconds"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "InactivityScale"; szValue = "0a,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "Reset"; szValue = "ATZ<cr>"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "FClass"; szValue = "1f,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "InfPath"; szValue = "MDMCFOS.INF"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "InfSection"; szValue = "Modem2"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "DriverDesc"; szValue = "cFos.Win, ISDN driver (Datex-J)"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "AttachedTo"; szValue = sgSelectedComPort; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Manufacturer"; szValue = "cFos Lueders Winkler GbR"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Model"; szValue = "cFos.Win, ISDN driver (Datex-J)"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "ID"; szValue = "2f,36,04,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "Default"; szValue = "3c,00,00,00,00,00,00,00,00,00,00,00,01,00,00,00,93,01,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "DCB"; szValue = "1c,00,00,00,00,b8,0b,00,15,20,00,00,00,00,0a,00,0a,00,08,00,00,11,13,00,00,00,50,7e"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szKey = "System\\CurrentControlSet\\Services\\Class\\Modem\\" + szModemNumber1 + "\\Init"; szName = "1"; szValue = "AT<cr>"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "2"; szValue = "AT &F S9=130<cr>"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); SetStatusWindow(50, "Installieren von cFos..."); szName = "3"; szValue = "AT B5<cr>"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szKey = "System\\CurrentControlSet\\Services\\Class\\Modem\\" + szModemNumber1 + "\\Responses"; szName = "<cr><lf>OK<cr><lf>"; szValue = "00,00,00,00,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>ERROR<cr><lf>"; szValue = "03,00,00,00,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr>"; szValue = "01,00,00,00,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<lf>"; szValue = "01,00,00,00,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>RING<cr><lf>"; szValue = "08,00,00,00,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>NO CARRIER<cr><lf>"; szValue = "04,00,00,00,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>NO DIALTONE<cr><lf>"; szValue = "05,00,00,00,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>BUSY<cr><lf>"; szValue = "06,00,00,00,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>NO ANSWER<cr><lf>"; szValue = "07,00,00,00,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>RINGING<cr><lf>"; szValue = "01,00,00,00,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>CONNECT<cr><lf>"; szValue = "02,00,00,00,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>CONNECT 64000<cr><lf>"; szValue = "02,02,00,fa,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>CONNECT 64000/PPP<cr><lf>"; szValue = "02,02,00,fa,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>CONNECT 64000/V42B/TX<cr><lf>"; szValue = "02,03,00,fa,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>CONNECT 64000/V42B/RX<cr><lf>"; szValue = "02,03,00,fa,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>CONNECT 64000/V42B/TXRX<cr><lf>"; szValue = "02,03,00,fa,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>CONNECT 38400<cr><lf>"; szValue = "02,00,00,96,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>CONNECT 19200<cr><lf>"; szValue = "02,00,00,4b,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>CONNECT 9600<cr><lf>"; szValue = "02,00,80,25,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>CONNECT 14400<cr><lf>"; szValue = "02,03,40,38,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szKey = "System\\CurrentControlSet\\Services\\Class\\Modem\\" + szModemNumber1 + "\\Monitor"; szName = "1"; szValue = "ATS0=0<cr>"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "2"; szValue = "None"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szKey = "System\\CurrentControlSet\\Services\\Class\\Modem\\" + szModemNumber1 + "\\Hangup"; szName = "1"; szValue = "ATH0<cr>"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szKey = "System\\CurrentControlSet\\Services\\Class\\Modem\\" + szModemNumber1 + "\\Answer"; szName = "1"; szValue = "ATA<cr>"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szKey = "System\\CurrentControlSet\\Services\\Class\\Modem\\" + szModemNumber1 + "\\Settings"; szName = "Prefix"; szValue = "AT"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Terminator"; szValue = "<cr>"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "DialPrefix"; szValue = "D"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "DialSuffix"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); SetStatusWindow(55, "Installieren von cFos..."); szName = "SpeakerVolume_Low"; szValue = "L0"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "SpeakerVolume_Med"; szValue = "L1"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "SpeakerVolume_High"; szValue = "L2"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "SpeakerMode_Off"; szValue = "M0"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "SpeakerMode_Dial"; szValue = "M1"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "SpeakerMode_On"; szValue = "M2"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "SpeakerMode_Setup"; szValue = "M3"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "FlowControl_Off"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "FlowControl_Hard"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "FlowControl_Soft"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "ErrorControl_On"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "ErrorControl_Off"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "ErrorControl_Forced"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Compression_On"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Compression_Off"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Modulation_CCITT"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Modulation_Bell"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "SpeedNegotiation_Off"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "SpeedNegotiation_On"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Pulse"; szValue = "P"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Tone"; szValue = "T"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Blind_Off"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Blind_On"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "CallSetupFailTimer"; szValue = "S7=<#>"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "InactivityTimeout"; szValue = "S19=<#>"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szKey = "System\\CurrentControlSet\\Services\\Class\\Modem\\" + szModemNumber1 + "\\Fax"; szName = "Class1DTESpeed"; szValue = "AUTO"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Class1FlowOff"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Class1FlowHW"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Class1FlowSW"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Class2FlowOff"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); SetStatusWindow(60, "Installieren von cFos..."); szName = "Class2FlowHW"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Class2FlowSW"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szKey = "System\\CurrentControlSet\\Services\\Class\\Modem\\" + szModemNumber2 + ""; szName = "FriendlyDriver"; szValue = "unimodem.vxd"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "DevLoader"; szValue = "*vcomm"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "PortSubClass"; szValue = "02"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "PortDriver"; szValue = "vcfos.vxd"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "ConfigDialog"; szValue = "modemui.dll"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "EnumPropPages"; szValue = "modemui.dll,EnumPropPages"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "DeviceType"; szValue = "01"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "Properties"; szValue = "00,00,00,00,ff,00,00,00,ff,00,00,00,07,00,00,00,0f,00,00,00,97,03,00,00,00,b8,0b,00,00,e8,03,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "Logging"; szValue = "01"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "LoggingPath"; szValue = "modemlog.txt"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "InactivityFormat"; szValue = "seconds"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "InactivityScale"; szValue = "0a,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "Reset"; szValue = "ATZ<cr>"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "FClass"; szValue = "1f,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "InfPath"; szValue = "MDMCFOS.INF"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "InfSection"; szValue = "Modem13"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "DriverDesc"; szValue = "cFos.Win, ISDN driver (V.110, 38400)"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "AttachedTo"; szValue = sgSelectedComPort; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Manufacturer"; szValue = "cFos Lueders Winkler GbR"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Model"; szValue = "cFos.Win, ISDN driver (V.110, 38400)"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "ID"; szValue = "6a,7f,04,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "Default"; szValue = "3c,00,00,00,00,00,00,00,00,00,00,00,01,00,00,00,93,01,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "DCB"; szValue = "1c,00,00,00,00,b8,0b,00,15,20,00,00,00,00,0a,00,0a,00,08,00,00,11,13,00,00,00,50,7e"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szKey = "System\\CurrentControlSet\\Services\\Class\\Modem\\" + szModemNumber2 + "\\Init"; szName = "1"; szValue = "AT<cr>"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "2"; szValue = "AT &F S9=130 ATS17=0<cr>"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "3"; szValue = "AT B1<cr>"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szKey = "System\\CurrentControlSet\\Services\\Class\\Modem\\" + szModemNumber2 + "\\Responses"; szName = "<cr><lf>OK<cr><lf>"; szValue = "00,00,00,00,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); SetStatusWindow(65, "Installieren von cFos..."); szName = "<cr><lf>ERROR<cr><lf>"; szValue = "03,00,00,00,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr>"; szValue = "01,00,00,00,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<lf>"; szValue = "01,00,00,00,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>RING<cr><lf>"; szValue = "08,00,00,00,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>NO CARRIER<cr><lf>"; szValue = "04,00,00,00,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>NO DIALTONE<cr><lf>"; szValue = "05,00,00,00,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>BUSY<cr><lf>"; szValue = "06,00,00,00,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>NO ANSWER<cr><lf>"; szValue = "07,00,00,00,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>RINGING<cr><lf>"; szValue = "01,00,00,00,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>CONNECT<cr><lf>"; szValue = "02,00,00,00,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>CONNECT 64000<cr><lf>"; szValue = "02,02,00,fa,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>CONNECT 64000/PPP<cr><lf>"; szValue = "02,02,00,fa,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>CONNECT 64000/V42B/TX<cr><lf>"; szValue = "02,03,00,fa,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>CONNECT 64000/V42B/RX<cr><lf>"; szValue = "02,03,00,fa,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>CONNECT 64000/V42B/TXRX<cr><lf>"; szValue = "02,03,00,fa,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>CONNECT 38400<cr><lf>"; szValue = "02,00,00,96,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>CONNECT 19200<cr><lf>"; szValue = "02,00,00,4b,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>CONNECT 9600<cr><lf>"; szValue = "02,00,80,25,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>CONNECT 14400<cr><lf>"; szValue = "02,03,40,38,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szKey = "System\\CurrentControlSet\\Services\\Class\\Modem\\" + szModemNumber2 + "\\Monitor"; szName = "1"; szValue = "ATS0=0<cr>"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "2"; szValue = "None"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szKey = "System\\CurrentControlSet\\Services\\Class\\Modem\\" + szModemNumber2 + "\\Hangup"; szName = "1"; szValue = "ATH0<cr>"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szKey = "System\\CurrentControlSet\\Services\\Class\\Modem\\" + szModemNumber2 + "\\Answer"; szName = "1"; szValue = "ATA<cr>"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szKey = "System\\CurrentControlSet\\Services\\Class\\Modem\\" + szModemNumber2 + "\\Settings"; szName = "Prefix"; szValue = "AT"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Terminator"; szValue = "<cr>"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "DialPrefix"; szValue = "D"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "DialSuffix"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "SpeakerVolume_Low"; szValue = "L0"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "SpeakerVolume_Med"; szValue = "L1"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); SetStatusWindow(70, "Installieren von cFos..."); szName = "SpeakerVolume_High"; szValue = "L2"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "SpeakerMode_Off"; szValue = "M0"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "SpeakerMode_Dial"; szValue = "M1"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "SpeakerMode_On"; szValue = "M2"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "SpeakerMode_Setup"; szValue = "M3"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "FlowControl_Off"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "FlowControl_Hard"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "FlowControl_Soft"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "ErrorControl_On"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "ErrorControl_Off"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "ErrorControl_Forced"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Compression_On"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Compression_Off"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Modulation_CCITT"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Modulation_Bell"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "SpeedNegotiation_Off"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "SpeedNegotiation_On"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Pulse"; szValue = "P"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Tone"; szValue = "T"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Blind_Off"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Blind_On"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "CallSetupFailTimer"; szValue = "S7=<#>"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "InactivityTimeout"; szValue = "S19=<#>"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szKey = "System\\CurrentControlSet\\Services\\Class\\Modem\\" + szModemNumber2 + "\\Fax"; szName = "Class1DTESpeed"; szValue = "AUTO"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Class1FlowOff"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Class1FlowHW"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Class1FlowSW"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Class2FlowOff"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Class2FlowHW"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Class2FlowSW"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); SetStatusWindow(75, "Installieren von cFos..."); szKey = "System\\CurrentControlSet\\Services\\Class\\Modem\\" + szModemNumber3 + ""; szName = "FriendlyDriver"; szValue = "unimodem.vxd"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "DevLoader"; szValue = "*vcomm"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "PortSubClass"; szValue = "02"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "PortDriver"; szValue = "vcfos.vxd"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "ConfigDialog"; szValue = "modemui.dll"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "EnumPropPages"; szValue = "modemui.dll,EnumPropPages"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "DeviceType"; szValue = "01"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "Properties"; szValue = "00,00,00,00,ff,00,00,00,ff,00,00,00,07,00,00,00,0f,00,00,00,97,03,00,00,00,b8,0b,00,00,e8,03,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "Logging"; szValue = "01"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "LoggingPath"; szValue = "modemlog.txt"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "InactivityFormat"; szValue = "seconds"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "InactivityScale"; szValue = "0a,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "Reset"; szValue = "ATZ<cr>"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "FClass"; szValue = "1f,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "InfPath"; szValue = "MDMCFOS.INF"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "InfSection"; szValue = "Modem15"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "DriverDesc"; szValue = "cFos.Win, ISDN driver (V.120)"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "AttachedTo"; szValue = sgSelectedComPort; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Manufacturer"; szValue = "cFos Lueders Winkler GbR"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Model"; szValue = "cFos.Win, ISDN driver (V.120)"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "ID"; szValue = "73,84,06,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "Default"; szValue = "3c,00,00,00,00,00,00,00,00,00,00,00,01,00,00,00,93,01,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "DCB"; szValue = "1c,00,00,00,00,b8,0b,00,15,20,00,00,00,00,0a,00,0a,00,08,00,00,11,13,00,00,00,50,7e"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szKey = "System\\CurrentControlSet\\Services\\Class\\Modem\\" + szModemNumber3 + "\\Init"; szName = "1"; szValue = "AT<cr>"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "2"; szValue = "AT &F S9=130 ATS17=0<cr>"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "3"; szValue = "AT B12<cr>"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szKey = "System\\CurrentControlSet\\Services\\Class\\Modem\\" + szModemNumber3 + "\\Responses"; szName = "<cr><lf>OK<cr><lf>"; szValue = "00,00,00,00,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>ERROR<cr><lf>"; szValue = "03,00,00,00,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr>"; szValue = "01,00,00,00,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); SetStatusWindow(80, "Installieren von cFos..."); szName = "<lf>"; szValue = "01,00,00,00,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>RING<cr><lf>"; szValue = "08,00,00,00,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>NO CARRIER<cr><lf>"; szValue = "04,00,00,00,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>NO DIALTONE<cr><lf>"; szValue = "05,00,00,00,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>BUSY<cr><lf>"; szValue = "06,00,00,00,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>NO ANSWER<cr><lf>"; szValue = "07,00,00,00,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>RINGING<cr><lf>"; szValue = "01,00,00,00,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>CONNECT<cr><lf>"; szValue = "02,00,00,00,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>CONNECT 64000<cr><lf>"; szValue = "02,02,00,fa,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>CONNECT 64000/PPP<cr><lf>"; szValue = "02,02,00,fa,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>CONNECT 64000/V42B/TX<cr><lf>"; szValue = "02,03,00,fa,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>CONNECT 64000/V42B/RX<cr><lf>"; szValue = "02,03,00,fa,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>CONNECT 64000/V42B/TXRX<cr><lf>"; szValue = "02,03,00,fa,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>CONNECT 38400<cr><lf>"; szValue = "02,00,00,96,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>CONNECT 19200<cr><lf>"; szValue = "02,00,00,4b,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>CONNECT 9600<cr><lf>"; szValue = "02,00,80,25,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "<cr><lf>CONNECT 14400<cr><lf>"; szValue = "02,03,40,38,00,00,00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szKey = "System\\CurrentControlSet\\Services\\Class\\Modem\\" + szModemNumber3 + "\\Monitor"; szName = "1"; szValue = "ATS0=0<cr>"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "2"; szValue = "None"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szKey = "System\\CurrentControlSet\\Services\\Class\\Modem\\" + szModemNumber3 + "\\Hangup"; szName = "1"; szValue = "ATH0<cr>"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szKey = "System\\CurrentControlSet\\Services\\Class\\Modem\\" + szModemNumber3 + "\\Answer"; szName = "1"; szValue = "ATA<cr>"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szKey = "System\\CurrentControlSet\\Services\\Class\\Modem\\" + szModemNumber3 + "\\Settings"; szName = "Prefix"; szValue = "AT"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Terminator"; szValue = "<cr>"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "DialPrefix"; szValue = "D"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "DialSuffix"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "SpeakerVolume_Low"; szValue = "L0"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "SpeakerVolume_Med"; szValue = "L1"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "SpeakerVolume_High"; szValue = "L2"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "SpeakerMode_Off"; szValue = "M0"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); SetStatusWindow(85, "Installieren von cFos..."); szName = "SpeakerMode_Dial"; szValue = "M1"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "SpeakerMode_On"; szValue = "M2"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "SpeakerMode_Setup"; szValue = "M3"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "FlowControl_Off"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "FlowControl_Hard"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "FlowControl_Soft"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "ErrorControl_On"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "ErrorControl_Off"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "ErrorControl_Forced"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Compression_On"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Compression_Off"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Modulation_CCITT"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Modulation_Bell"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "SpeedNegotiation_Off"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "SpeedNegotiation_On"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Pulse"; szValue = "P"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Tone"; szValue = "T"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Blind_Off"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Blind_On"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "CallSetupFailTimer"; szValue = "S7=<#>"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "InactivityTimeout"; szValue = "S19=<#>"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szKey = "System\\CurrentControlSet\\Services\\Class\\Modem\\" + szModemNumber3 + "\\Fax"; szName = "Class1DTESpeed"; szValue = "AUTO"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Class1FlowOff"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Class1FlowHW"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Class1FlowSW"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Class2FlowOff"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Class2FlowHW"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Class2FlowSW"; szValue = ""; RegistryEntry(szKey, szName, szValue, REGDB_STRING); SetStatusWindow(90, "Installieren von cFos..."); szKey = "Enum\\Root\\Modem\\" + szModemNumber0 + ""; szName = "Class"; szValue = "Modem"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Driver"; szValue = "Modem\\" + szModemNumber0; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Mfg"; szValue = "cFos Lueders Winkler GbR"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "HardwareID"; szValue = "UNIMODEMF68C9B30"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "DeviceDesc"; szValue = "cFos.Win, ISDN driver (X.75, default settings)"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "ConfigFlags"; szValue = "00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "FriendlyName"; szValue = "cFos.Win, ISDN driver (X.75, default settings)"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szKey = "Enum\\Root\\Modem\\" + szModemNumber1 + ""; szName = "Class"; szValue = "Modem"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Driver"; szValue = "Modem\\" + szModemNumber1; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Mfg"; szValue = "cFos Lueders Winkler GbR"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "HardwareID"; szValue = "CFOSWIN_2"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "DeviceDesc"; szValue = "cFos.Win, ISDN driver (X.75 Datex-J)"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "ConfigFlags"; szValue = "00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "FriendlyName"; szValue = "cFos.Win, ISDN driver (X.75 Datex-J)"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szKey = "Enum\\Root\\Modem\\" + szModemNumber2 + ""; szName = "Class"; szValue = "Modem"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Driver"; szValue = "Modem\\" + szModemNumber2; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Mfg"; szValue = "cFos Lueders Winkler GbR"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "HardwareID"; szValue = "CFOSWIN_13"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "DeviceDesc"; szValue = "cFos.Win, ISDN driver (V.110, 38400)"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "ConfigFlags"; szValue = "00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "FriendlyName"; szValue = "cFos.Win, ISDN driver (V.110, 38400)"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szKey = "Enum\\Root\\Modem\\" + szModemNumber3 + ""; szName = "Class"; szValue = "Modem"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Driver"; szValue = "Modem\\" + szModemNumber3; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "Mfg"; szValue = "cFos Lueders Winkler GbR"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "HardwareID"; szValue = "CFOSWIN_15"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "DeviceDesc"; szValue = "cFos.Win, ISDN driver (V.120)"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); szName = "ConfigFlags"; szValue = "00,00,00,00"; RegistryEntry(szKey, szName, szValue, REGDB_BINARY); szName = "FriendlyName"; szValue = "cFos.Win, ISDN driver (V.120)"; RegistryEntry(szKey, szName, szValue, REGDB_STRING); SetStatusWindow(95, "Installieren von cFos..."); ////////////////////////////////////////////////////////////////////////////// // Make necessary changes to Win.ini System.ini ////////////////////////////////////////////////////////////////////////////// ChangeSystemIni: WriteProfString(WINDIR+"SYSTEM.INI", "cFos", "param", sgSelectedComPort + " -w4"); WriteProfString(WINDIR+"SYSTEM.INI", "cFos", "help", sgCfosPath + "\\cfos.hlp"); WriteProfString(WINDIR+"SYSTEM.INI", "cFos", "capi", sgCapiPath); WriteProfString(WINDIR+"SYSTEM.INI", "cFos", "capi20", sgCapiPath); WriteProfString(WINDIR+"SYSTEM.INI", "cFos", "key", sgCfosPath + "\\cfos.key"); WriteProfString(WINDIR+"SYSTEM.INI", "cFos", "profile", sgCfosPath + "\\profile"); WriteProfString(WINDIR+"SYSTEM.INI", "cFos", "factory", sgCfosPath + "\\factory"); WriteProfString(WINDIR+"SYSTEM.INI", "cFos", "cfosdw", sgCfosPath + "\\cfosdw.exe"); if (nCapiVersion = 1) then sgTemp=""; else sgTemp="20"; endif; WriteProfString(WINDIR+"SYSTEM.INI", "cFos", "drv", sgCfosPath + "\\cfos" + sgTemp + ".drv"); GetProfString(WINDIR+"SYSTEM.INI", "boot", "comm.drv", sgTemp); WriteProfString(WINDIR+"SYSTEM.INI", "cFos", "oldcomm", sgTemp); AddProfString(WINDIR+"SYSTEM.INI", "386Enh", "device", sgCfosPath + "\\vcfos.vxd"); WriteProfString(WINDIR+"SYSTEM.INI", "cFos", "uninstall", sgUninstallLogFile); GetProfString(WINDIR+"WIN.INI", "windows", "run", sgTemp); // I added the removal of any possible cfosdw.exe in this line to SETUP.RUL // so that I don't need to check in here, if cfosdw.exe already in this line. if (sgTemp = "") then sgRun = sgCfosPath + "\\cfosdw.exe"; else sgRun = sgTemp + " " + sgCfosPath + "\\cfosdw.exe"; endif; WriteProfString(WINDIR+"WIN.INI", "windows", "run", sgRun); ////////////////////////////////////////////////////////////////////////////// // End of program Block ////////////////////////////////////////////////////////////////////////////// exit; ////////////////////////////////////////////////////////////////////////////// // // Function: RegistryEntry // // Purpose: Adds a Registry Entry // // Input: STRING szKey, STRING szValueName, STRING szValue, NUMBER nValueType // // Returns: TRUE, if successful, otherwise FALSE // // Author: Kai Uwe Beecken, IPG Europe // ////////////////////////////////////////////////////////////////////////////// function RegistryEntry(szlKey, szlValueName, szlValue, nlValueType) BOOL bReturnValue; NUMBER nlSize; begin nlSize=-1; if (RegDBKeyExist (szlKey) < 0) then if (RegDBCreateKeyEx (szKey, szClass) < 0) then MessageBox ("Eintrag in die Registry schlug fehl: " + szlKey, WARNING); bReturnValue = FALSE; endif; endif; if (RegDBKeyExist (szlKey) < 0) then MessageBox ("Eintrag in der Registry konnte nicht gefunden werden: " + szlKey, WARNING); bReturnValue= FALSE; else if (nlValueType=REGDB_BINARY) then nlSize=ConvertStringToHex(szlValue); if (nlSize=0) then return FALSE; endif; else sgGlobalBinaryString = szlValue; endif; if (RegDBSetKeyValueEx (szlKey, szlValueName, nlValueType, sgGlobalBinaryString, nlSize) < 0) then MessageBox ("Eintrag in die Registry schlug fehl: " + szlKey + " " + szlValueName, WARNING); bReturnValue = FALSE; else bReturnValue = TRUE; // SprintfBox (INFORMATION, "Schau in den Regedit", "Schau nach, ob %s existiert!", szlKey); endif; endif; return bReturnValue; end; ////////////////////////////////////////////////////////////////////////////// // // Function: GetRegistryEntry // // Purpose: Retrieves a value from the Registry // // Input: STRING szKey, STRING szValueName, sgRegistryValue, NUMBER nValueType // // Returns: NUMBER size of the string. // // Author: Kai Uwe Beecken, IPG Europe // ////////////////////////////////////////////////////////////////////////////// function GetRegistryEntry(szlKey, szlValueName, sgRegistryValue, nlValueType) NUMBER nlSize; begin if (RegDBKeyExist (szlKey) < 0) then MessageBox ("Eintrag in der Registry konnte nicht gefunden werden: " + szlKey, WARNING); nlSize=0; else if (RegDBGetKeyValueEx (szlKey, szlValueName, nlValueType, sgRegistryValue, nlSize) < 0) then MessageBox ("Konnte Key in der Registry nicht auslesen: " + szlKey + " " + szlValueName, WARNING); nlSize=0; else // MessageBox ("Folgender Wert wurde ermittelt: " + sgRegistryValue, WARNING); endif; endif; return nlSize; end; ////////////////////////////////////////////////////////////////////////////// // // Function: ConvertStringToHex // // Purpose: Converts a string ("hex: a8,12,b4") to binary data. // // Input: STRING szString // // Returns: NUMBER number of bytes in the returned string. // // Author: Kai Uwe Beecken, IPG Europe // ////////////////////////////////////////////////////////////////////////////// function ConvertStringToHex(szString); STRING svlTempString, svlResultString; BOOL blDone; NUMBER nlLength, nlSize, nlPosition, nlTens, nlOnes, nlTemp; begin sgGlobalBinaryString = " "; nlLength = StrLength(szString); if (nlLength < 1) then return 0; endif; StrToLower(svlTempString, szString); StrSub(svlResultString, svlTempString, 0, 4); if (svlResultString = "hex:") then if (nlLength<4) then return 0; endif; nlLength=nlLength - 4; StrSub(svlResultString, svlTempString, 4, nlLength); else svlResultString=svlTempString; endif; if (nlLength < 2) then return 0; endif; nlSize=0; nlPosition = 0; blDone=FALSE; while (!blDone) GetByte(nlTens, svlResultString, nlPosition); // SprintfBox(INFORMATION,"GetByte","Getbyte for %s: Pos: %d Char: %c Value: %d", // svlResultString, nlPosition, nlTens, nlTens); if (nlTens > 47 && nlTens < 58) then nlTens = nlTens - 48; elseif (nlTens > 96 && nlTens < 103) then nlTens = nlTens - 97 + 10; else return 0; endif; nlPosition = nlPosition +1; if (nlPosition >= nlLength) then blDone = TRUE; return nlSize; endif; GetByte(nlOnes, svlResultString, nlPosition); // SprintfBox(INFORMATION,"GetByte","Getbyte for %s: Pos: %d Char: %c Value: %d", // svlResultString, nlPosition, nlOnes, nlOnes); if (nlOnes > 47 && nlOnes < 58) then nlOnes = nlOnes - 48; elseif (nlOnes > 96 && nlOnes < 103) then nlOnes = nlOnes - 97 + 10; else return 0; endif; nlTemp = (nlTens * 16) + nlOnes; // SprintfBox(INFORMATION,"Calculation","The value calculated for this byte is: %d", nlTemp); SetByte(sgGlobalBinaryString, nlSize, nlTemp); // SprintfBox(INFORMATION,"SetByte","Setbyte was called with these parameters: Pos: %d Value: %d String so far: %s", nlSize, nlTemp, sgGlobalBinaryString); nlSize = nlSize + 1; nlTens = 0; nlOnes = 0; nlPosition = nlPosition +2; if (nlPosition >= nlLength) then blDone = TRUE; endif; // if (blDone) then // SprintfBox(INFORMATION,"Status","String was converted successfully. Length: %d", nlSize); // endif; endwhile; return nlSize; end;